export const AUTH_ERROR_CODE = {
  anonymous_provider_disabled: '匿名登录已禁用',
  bad_code_verifier: '代码验证器与预期的不匹配，指示客户端库实现中的错误',
  bad_json: '请求的HTTP正文不是有效的JSON',
  bad_jwt: 'Authorization header中发送的JWT无效',
  bad_oauth_callback:
    'OAuth回调缺少必需属性（state），存在OAuth提供者或客户端库实现问题',
  bad_oauth_state: 'OAuth状态格式不正确，OAuth提供者集成存在问题',
  captcha_failed: '验证码挑战验证失败，请检查验证码集成',
  conflict: '数据库冲突，可能因并发请求过多导致',
  email_address_invalid: '不支持示例和测试域，请使用其他邮箱地址',
  email_address_not_authorized:
    '默认SMTP服务不允许向此地址发送邮件，需设置自定义SMTP提供者',
  email_conflict_identity_not_deletable:
    '解除身份会导致邮箱地址冲突，用户存在两个不同账户',
  email_exists: '系统中已存在该邮箱地址',
  email_not_confirmed: '邮箱地址未确认，不允许登录',
  email_provider_disabled: '邮箱和密码注册已被禁用',
  flow_state_expired: 'PKCE流程状态已过期，请用户重新登录',
  flow_state_not_found: 'PKCE流程状态不存在，请用户重新登录',
  hook_payload_invalid_content_type: 'Auth发送的负载没有有效的Content-Type头部',
  hook_payload_over_size_limit: '认证负载超过最大大小限制',
  hook_timeout: '在分配的最大时间内无法连接到钩子',
  hook_timeout_after_retry: '最大重试次数后仍无法连接到钩子',
  identity_already_exists: 'API关联的身份已链接到用户',
  identity_not_found: '与API调用相关的身份不存在',
  insufficient_aal: '用户需具有更高的身份验证器保障级别，需完成MFA挑战',
  invalid_credentials: '登录凭证或授权类型无法识别',
  invite_not_found: '邀请已过期或已被使用',
  manual_linking_disabled: 'Auth服务器未启用supabase.auth.linkUser()及相关API',
  mfa_challenge_expired: 'MFA挑战已过期，请请求新挑战',
  mfa_factor_name_conflict: '单个用户的MFA因素不应有相同的友好名称',
  mfa_factor_not_found: 'MFA因素不存在',
  mfa_ip_address_mismatch: 'MFA注册过程必须在同一IP地址完成',
  mfa_phone_enroll_not_enabled: 'MFA电话因素的注册已被禁用',
  mfa_phone_verify_not_enabled: '通过电话因素登录及验证已被禁用',
  mfa_totp_enroll_not_enabled: 'MFA TOTP因素的注册已被禁用',
  mfa_totp_verify_not_enabled: '通过TOTP因素登录及验证已被禁用',
  mfa_verification_failed: 'MFA挑战验证失败，TOTP码错误',
  mfa_verification_rejected: 'MFA验证被拒绝',
  mfa_verified_factor_exists: '用户已存在已验证的手机验证因素，需先注销',
  mfa_web_authn_enroll_not_enabled: 'MFA Web Authn因素的注册已被禁用',
  mfa_web_authn_verify_not_enabled: '通过WebAuthn因素登录及验证已被禁用',
  no_authorization: 'HTTP请求需要Authorization头，但未提供',
  not_admin: '访问API的用户不是管理员',
  oauth_provider_not_supported: '使用的OAuth提供者在Auth服务器上被禁用',
  otp_disabled: 'OTP登录（魔法链接、电子邮件OTP）已被禁用',
  otp_expired: 'OTP验证码已过期，请用户重新登录',
  over_email_send_rate_limit: '向该邮箱发送邮件过多，请稍后再试',
  over_request_rate_limit: '客户端请求过多，请稍后再试',
  over_sms_send_rate_limit: '向该手机号发送短信过多，请稍后再试',
  phone_exists: '系统中已存在该手机号',
  phone_not_confirmed: '手机号未验证，不允许登录',
  phone_provider_disabled: '电话和密码注册已被禁用',
  provider_disabled: '该OAuth提供方已被禁用',
  provider_email_needs_verification:
    'OAuth提供者未验证用户邮箱，需发送验证邮件',
  reauthentication_needed: '用户需重新认证才能更改密码',
  reauthentication_not_valid: '重新认证验证失败，代码不正确',
  refresh_token_already_used: '刷新令牌已被撤销，不在重用间隔内',
  refresh_token_not_found: '未找到包含刷新令牌的会话',
  request_timeout: '处理请求超时，请重试',
  same_password: '更新密码必须使用与当前不同的密码',
  saml_assertion_no_email: 'SAML断言中未找到必需的电子邮件地址',
  saml_assertion_no_user_id: 'SAML断言中未找到必需的用户ID（NameID）',
  saml_entity_id_mismatch: '无法更新SAML元数据，实体ID不匹配',
  saml_idp_already_exists: '要添加的SAML身份提供者已存在',
  saml_idp_not_found: '未找到SAML身份提供者',
  saml_metadata_fetch_failed: '无法从提供的URL获取SAML元数据',
  saml_provider_disabled: 'Auth服务器未启用SAML 2.0的企业SSO',
  saml_relay_state_expired: 'SAML中继状态已过期，请用户重新登录',
  saml_relay_state_not_found: 'SAML中继状态不存在，请用户重新登录',
  session_expired: '会话已过期',
  session_not_found: '会话不存在',
  signup_disabled: '服务器已禁用注册（新账户创建）',
  single_identity_not_deletable: '用户必须至少有一个关联身份，无法删除唯一身份',
  sms_send_failed: '短信发送失败，请检查短信提供者配置',
  sso_domain_already_exists: '每个SSO身份提供者只能注册一个SSO域',
  sso_provider_not_found: '未找到SSO提供商，请检查参数',
  too_many_enrolled_mfa_factors: '用户已注册的MFA因素数量超过限制',
  unexpected_audience: '请求的X-JWT-AUD声明与JWT的受众不匹配（已弃用）',
  unexpected_failure: '认证服务性能下降或存在错误，无具体原因',
  user_already_exists: '该用户信息（邮箱、手机号）已存在',
  user_banned: '用户处于封禁状态，banned_until属性仍有效',
  user_not_found: '与API请求相关的用户已不存在',
  user_sso_managed: 'SSO用户的某些字段（如邮箱）无法更新',
  validation_failed: '提供的参数格式不符合预期',
  weak_password: '密码未满足强度要求'
} as const

export type AuthErrorCode = keyof (typeof AUTH_ERROR_CODE)